package com.doit.mr.day01;

import com.doit.mr.day01.MyUtil.MyUtils;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * @DATE 2021/12/7/22:04
 * @Author MDK
 * @Version 2021.2.2
 * 在指定位置开始读取数据   记录数据长度  随机读取1KB
 **/
public class C06_ReadData {
    public static void main(String[] args) throws Exception {
        FileSystem fs = MyUtils.getFileSystem();
        //读取HDFS上的文件内容  输入流
        FSDataInputStream fis = fs.open(new Path("/1.txt"));
        //跳过指定字节的数据
        fis.skip(5);
        //将字节数组封装成缓冲字符流
        BufferedReader br = new BufferedReader(new InputStreamReader(fis));
        String line = null;
        long len = 0l;
        //按行加载数据
        while((line = br.readLine())!=null){
            len += line.length();
            System.out.println(line);
            //读取字节数超过1KB则跳出循环
            if (len>=1024){
                break;
            }
        }
        fis.seek(1);
        fs.close();
    }
}
